/**
 * 订单相关类型定义
 */

/**
 * 订单信息
 */
export interface Order {
  /**
   * 订单ID
   */
  id: string | number
  
  /**
   * 订单编号
   */
  orderNo: string
  
  /**
   * 用户ID
   */
  userId: string | number
  
  /**
   * 订单状态：
   * 0-待付款，1-待发货，2-待收货，3-已完成，4-已取消，5-已退款
   */
  status: 0 | 1 | 2 | 3 | 4 | 5
  
  /**
   * 订单项列表
   */
  items: OrderItem[]
  
  /**
   * 收货地址信息
   */
  address: OrderAddress
  
  /**
   * 订单总金额（单位：分）
   */
  totalAmount: number
  
  /**
   * 实付金额（单位：分）
   */
  payAmount: number
  
  /**
   * 优惠金额（单位：分）
   */
  discountAmount: number
  
  /**
   * 运费（单位：分）
   */
  freightAmount: number
  
  /**
   * 支付方式：1-微信支付，2-支付宝，3-银联，4-余额支付
   */
  payType?: 1 | 2 | 3 | 4
  
  /**
   * 支付时间
   */
  payTime?: string
  
  /**
   * 支付交易号
   */
  payTransactionId?: string
  
  /**
   * 发货时间
   */
  deliveryTime?: string
  
  /**
   * 物流公司
   */
  logisticsCompany?: string
  
  /**
   * 物流单号
   */
  logisticsNo?: string
  
  /**
   * 收货时间
   */
  receiveTime?: string
  
  /**
   * 完成时间
   */
  finishTime?: string
  
  /**
   * 取消时间
   */
  cancelTime?: string
  
  /**
   * 取消原因
   */
  cancelReason?: string
  
  /**
   * 订单备注
   */
  remark?: string
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}

/**
 * 订单项信息
 */
export interface OrderItem {
  /**
   * 订单项ID
   */
  id: string | number
  
  /**
   * 订单ID
   */
  orderId: string | number
  
  /**
   * 商品ID
   */
  productId: string | number
  
  /**
   * 商品SKU ID
   */
  skuId: string | number
  
  /**
   * 商品名称
   */
  productName: string
  
  /**
   * 商品图片
   */
  productImage: string
  
  /**
   * 商品规格信息
   */
  specInfo: string
  
  /**
   * 商品价格（单位：分）
   */
  price: number
  
  /**
   * 商品数量
   */
  quantity: number
  
  /**
   * 商品总金额（单位：分）
   */
  totalAmount: number
  
  /**
   * 是否已评价
   */
  isReviewed: boolean
}

/**
 * 订单地址信息
 */
export interface OrderAddress {
  /**
   * 收件人姓名
   */
  name: string
  
  /**
   * 手机号
   */
  phone: string
  
  /**
   * 省份
   */
  province: string
  
  /**
   * 城市
   */
  city: string
  
  /**
   * 区/县
   */
  district: string
  
  /**
   * 详细地址
   */
  address: string
  
  /**
   * 邮政编码
   */
  zipCode?: string
}

/**
 * 订单统计信息
 */
export interface OrderStatistics {
  /**
   * 待付款订单数
   */
  pendingPayment: number
  
  /**
   * 待发货订单数
   */
  pendingDelivery: number
  
  /**
   * 待收货订单数
   */
  pendingReceive: number
  
  /**
   * 待评价订单数
   */
  pendingReview: number
  
  /**
   * 退款/售后订单数
   */
  afterSale: number
}

/**
 * 购物车项
 */
export interface CartItem {
  /**
   * 购物车项ID
   */
  id: string | number
  
  /**
   * 用户ID
   */
  userId: string | number
  
  /**
   * 商品ID
   */
  productId: string | number
  
  /**
   * 商品SKU ID
   */
  skuId: string | number
  
  /**
   * 商品名称
   */
  productName: string
  
  /**
   * 商品图片
   */
  productImage: string
  
  /**
   * 商品规格信息
   */
  specInfo: string
  
  /**
   * 商品价格（单位：分）
   */
  price: number
  
  /**
   * 商品原价（单位：分）
   */
  originalPrice: number
  
  /**
   * 商品数量
   */
  quantity: number
  
  /**
   * 是否选中
   */
  selected: boolean
  
  /**
   * 库存
   */
  stock: number
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}

/**
 * 支付信息
 */
export interface PaymentInfo {
  /**
   * 支付ID
   */
  id: string | number
  
  /**
   * 订单ID
   */
  orderId: string | number
  
  /**
   * 订单编号
   */
  orderNo: string
  
  /**
   * 用户ID
   */
  userId: string | number
  
  /**
   * 支付金额（单位：分）
   */
  amount: number
  
  /**
   * 支付方式：1-微信支付，2-支付宝，3-银联，4-余额支付
   */
  payType: 1 | 2 | 3 | 4
  
  /**
   * 支付状态：0-未支付，1-支付中，2-支付成功，3-支付失败
   */
  status: 0 | 1 | 2 | 3
  
  /**
   * 支付交易号
   */
  transactionId?: string
  
  /**
   * 支付时间
   */
  payTime?: string
  
  /**
   * 支付失败原因
   */
  failReason?: string
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}

/**
 * 退款信息
 */
export interface RefundInfo {
  /**
   * 退款ID
   */
  id: string | number
  
  /**
   * 订单ID
   */
  orderId: string | number
  
  /**
   * 订单编号
   */
  orderNo: string
  
  /**
   * 用户ID
   */
  userId: string | number
  
  /**
   * 退款金额（单位：分）
   */
  amount: number
  
  /**
   * 退款原因
   */
  reason: string
  
  /**
   * 退款说明
   */
  description?: string
  
  /**
   * 退款凭证图片
   */
  images?: string[]
  
  /**
   * 退款状态：0-待处理，1-退款中，2-已退款，3-已拒绝
   */
  status: 0 | 1 | 2 | 3
  
  /**
   * 拒绝原因
   */
  rejectReason?: string
  
  /**
   * 退款时间
   */
  refundTime?: string
  
  /**
   * 退款交易号
   */
  refundTransactionId?: string
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
}